﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GameEngine.Players
{
    public abstract class Player
    {
        public string Name { get; set; }

        public Player( string name )
        {
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="onMove">Called when the player has a move. The return is the list of reasons why
        /// the move is illegal. If there are any then the caller should make a different move.</param>
        public abstract void GetNextMoveAsync(Action<Engine.MoveDetails> onMove);
    }
}
